iT邦幫忙

DAY 20
0

30天C語言巔峰之路系列 第 20

30天C語言巔峰之路(Day20:選擇敘述-switch...case-1)

  • 分享至 

  • xImage
  •  

switch...case

如果選擇非常多的話,用一堆if...else 會感覺程式碼不漂亮,這時使用switch...case 會好看許多。

Source Code

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
	int grade;
	printf("請輸入代號(1,2,3):");
	scanf("%d",&grade);
	switch(grade)
	{
		case 1:printf("你是大學部學生\n");
		case 2:printf("你是碩士生\n");
		case 3:printf("你是博士生\n");
		default:printf("你是進修部學生\n");
	}
	return 0;
}

執行結果

switch(grade) 的 grade 用來判斷條件的。

程式中
case 1:
case 2:
case 3:

可以等於
if(grade==1)
else if(grade==2)
else if(grade==3)

最後的default 跟 else 有點像,在以上判斷都不成立,才執行default裡面的動作。

但是閣下看輸出結果明顯錯誤,而且錯誤的很有規律,除了執行選到的case 裡的動作,在選到的 case 之下的每個case 都被選到。
選到1:執行1、2、3、default 裡的動作
選到2:執行2、3、default 裡的動作
選到3:執行3、default 裡的動作
選到n:執行default 裡的動作 (n 為任意整數)

那是因為我們少打了一個東西,在if...else 執行的範圍是在{}之中,而switch則是執行到break之前停止。

正確範例在明天更新。


上一篇
30天C語言巔峰之路(Day19:選擇敘述-if...else-4)
下一篇
30天C語言巔峰之路(Day21:選擇敘述-switch...case-2)
系列文
30天C語言巔峰之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言